
// 调用上一页方法    vue3 setup 中无效（小程序可用 尽量统一使用 uni.$on uni.$emit uni.$off）
function lastMethod(fun,type='fn'){
	// fn 上以页面的方法  str 上一页的字符串
	const pages = getCurrentPages();
	const page = pages[pages.length - 1];  // 当前页实例
	const lastPage = pages[pages.length - 2];  // 上一页实例
    if(lastPage?.$vm[fun]){
        switch (type) {
            case 'fn':
                lastPage.$vm[fun]()
            case 'str':
                return lastPage.$vm[fun]
            break;
        }
    }else{
        console.log('没有获取到上一页')
    }
}

// 上一个页面栈
const lastPage = ()=>{
	const pages = getCurrentPages();
	const lastPage = pages[pages.length - 2];  // 上一页实例
	return lastPage?lastPage:'页面未找到'
}

// 上一个页面栈赋值  vue3 setup 中无效（小程序可用 尽量统一使用 uni.$on uni.$emit uni.$off）
const lastVal = (str,val)=>{
	const pages = getCurrentPages();
	const lastPage = pages[pages.length - 2];  // 上一页实例
	lastPage.$vm[str] = val
}

const delayBack = (delta=1,wait=1500) => {
	setTimeout(()=>{
		uni.navigateBack({
			delta
		})
	},wait)
}


// 处理上一个或者指定页面能否刷新 主要用来处理刷新 默认上一页 可以后续新增其他页面

/* 
	监听页面代码 
	<script setup>
		const route = uni.$u.page();  //  /pages/index/index 结合uview 或者 自己获取当前页面路径
		onLoad(()=>{
			uni.$on('could',val=>{
				if(!val.includes(route)) return;
				// 监听到之后的操作
			})
		})
		onUnload(()=>{
			uni.$off('could')
		})
	</script>
	
 */

const lastCould = (arr=[]) => {
	const pages = getCurrentPages();
	const page = pages[pages.length - 1];  // 当前页实例
	const lastPage = pages[pages.length - 2];  // 上一页实例
	uni.$emit('could',['/'+lastPage.route,...arr])
}

export default {
	lastMethod,
	lastVal,
	delayBack,
	lastCould
}